// j控制当前列数，i控制当前行数
package main

import (
	"fmt"
)

// 打印乘法口诀表-1
func one_1() {
	for i := 1; i <= 9; i++ {
		for j := 1; j <= 9; j++ {
			fmt.Printf("%d*%d=%d\t", j, i, i*j)
			if i == j {
				break
			}
		}
		fmt.Println()
	}
}

// 打印乘法口诀表-2
func one_2() {
	for i := 1; i <= 9; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%d*%d=%d\t", j, i, i*j)
		}
		fmt.Println(" ")
	}
}

// 随机生成100以内的20个非0正整数
func two() {
	sum := 0
	sum2 := 1
	rand.Seed(time.Now().UnixNano())
	for i := 1; i < 21; i++ {
		num := rand.Intn(100)
		fmt.Printf("第%d次随机数：%d\n", i, num)
		if i%2 == 0 {
			sum2 *= num
		} else {
			sum += num
		}
	}
	fmt.Printf("随机数第单数个求和: %d ,第偶数个求乘积: %d\n", sum, sum2)
}

// 打印100以内的斐波那契数列
func three() {
	num1 := 0
    num2 := 1

    fmt.Println("斐波那契数列：")
    fmt.Printf("%d ", num1)

    for num2 <= 100 {
        fmt.Printf("%d ", num2)
        sum := num1 + num2
        num1 = num2
        num2 = sum
    }
}

func main() {
	fmt.Println("----------第一题----------")
	one_1()
	fmt.Println("----------第一题----------")
	one_2()
	fmt.Println("----------第二题----------")
	two()
	fmt.Println("----------第三题----------")
	three()
}